#ifndef BOXHASHTABLEWRAPPER_H_JM_20120912
#define BOXHASHTABLEWRAPPER_H_JM_20120912

#include "../../common/hash/HashTableCore.h"
#include "../../common/hash/BoostHashWrapper.h"

namespace jm4bbx {



	template<class KeyType, class ValueType, size_t SIZE>
	class  BoxStaticHashTableWrapper {
	public:
		 typedef HashTableCore<KeyType, ValueType, SIZE> HashTableType;
		
		 HashTableType* getHashTable() { return &table_; }
	private:
		static HashTableType table_;

	};

	template<class KeyType, class ValueType, size_t SIZE>
		 HashTableCore<KeyType, ValueType, SIZE> 
			 jm4bbx::BoxStaticHashTableWrapper<KeyType, ValueType, SIZE>::table_(
				jm4bbx::HashTableCore<KeyType, ValueType, SIZE>::HashFunctorPtr(new BoostHashWrapper<KeyType>()));

	//template<class KeyType, class ValueType, size_t SIZE>
	//	
	//typename BoxStaticHashTableWrapper<KeyType, ValueType, SIZE>::HashTableType

	//		BoxStaticHashTableWrapper<KeyType, ValueType, SIZE>::table_;
	//(
	//			
	//			BoxStaticHashTableWrapper<KeyType, ValueType, SIZE>::
	//		
	//			HashTableType::HashFunctorPtr(new BoostHashWrapper<KeyType>()));

} // namespace jm4bbx


#endif
